#ifndef TETRIS_CONSTANTS_HPP
#define TETRIS_CONSTANTS_HPP

namespace Tetris {

// 游戏板尺寸
const int BOARD_WIDTH = 10;
const int BOARD_HEIGHT = 20;   // 实际可见高度
const int BOARD_HIDDEN_TOP = 2;  // 顶部隐藏的高度，用于生成方块

// 方块类型枚举（用于索引颜色和形状）
enum class BlockType {
    None = 0, // 空格
    I, O, T, S, Z, J, L,
    Ghost, // 幽灵方块
    Border // 边框颜色
};

enum ColorPairId {
    COLOR_PAIR_EMPTY = 0,
    COLOR_PAIR_I_BLOCK = 1,
    COLOR_PAIR_O_BLOCK,
    COLOR_PAIR_T_BLOCK,
    COLOR_PAIR_S_BLOCK,
    COLOR_PAIR_Z_BLOCK,
    COLOR_PAIR_J_BLOCK,
    COLOR_PAIR_L_BLOCK,
    COLOR_PAIR_GHOST,
    COLOR_PAIR_BORDER_TEXT
};

// 游戏速度（毫秒）
const long INITIAL_FALL_INTERVAL_MS = 1000;  // 初始方块下落速度
const int GAME_TICK_RATE_MS = 10;  // 游戏循环刷新间隔

// 游戏得分
const int SCORE_SINGLE_LINE = 100;
const int SCORE_DOUBLE_LINE = 300;
const int SCORE_TRIPLE_LINE = 500;
const int SCORE_TETRIS_LINE = 800;

} // namespace Tetris 

#endif  // TETRIS_CONSTANTS_HPP

